#============================================
#知识点
#1.第一次g.send(none)等效于next(g)
#2.x = g.send()可以给yield传一个值只有一个这个值在传给x，可以为列表、字典....
#3.每次使用，都会先给yield传送一个值到x，再执行到下一个yield 。所以在使用send前,需要使用#1方法，不然就找不到第一个yield，赋予其值
#4.通过.send()可以写成表达式，给后面程序用,如列子1
#5.因为res = g.send()过后会执行到下一个yield停止，所以res输出的返回值为下一个yield所对应的返回值
#6.三元表达式
#============================================
#例子1
# def qwq(x):
#     while True:
#         y = yield
#         print("{}今天吃了{}个包子".format(x,y))
# ls = [1,2,3,4,5,6]
# x = qwq("小黑")
# next(x)
# for i in ls:
#     x.send(i)
#============================================
#列子2
ls_wei = ["草莓","西瓜","香草","香蕉","苹果"]
ls = []
def qwq(x):
    while True:
        y = yield ls
        print("{}吃了{}味的糖".format(x,y)) #输出的只是每次send进来的值
        ls.append(y)
ddq = qwq("我")
print(next(ddq))
for i in ls_wei:
   print (ddq.send(i)) #返回的为下一次yield的返回值因为用了ls.append所以一直再加。
#============================================   

